﻿#region << 文 件 说 明 >>

/*----------------------------------------------------------------
// 文件名称：IDialogMessage
// 创 建 者：杨程
// 创建时间：2021/10/18 10:51:43
// 文件版本：V1.0.0
// ===============================================================
// 功能描述：
//
//
//----------------------------------------------------------------*/

#endregion

namespace Vampirewal.Core.Interface;

/// <summary>
/// 弹窗通知服务接口
/// </summary>
public interface IVampirewalCoreDialogMessage
{
    /// <summary>
    /// 弹出PopupWindow消息框
    ///  <para>不要放在ViewModel的构造函数中调用，会出异常</para>
    /// </summary>
    void ShowPopupWindow(PopupWindowSetting setting);

    /// <summary>
    /// 弹出DialogWindows窗体
    /// </summary>
    /// <param name="setting">窗体设置</param>
    object OpenDialogWindow(DialogWindowSetting setting);

    /// <summary>
    /// 弹出正常Windows窗体
    /// </summary>
    /// <param name="setting"></param>
    /// <returns></returns>
    object OpenNormalWindow(DialogWindowSetting setting);

    /// <summary>
    /// 选择文件夹弹窗
    /// </summary>
    /// <param name="defaultPath">默认文件夹路径</param>
    /// <returns></returns>
    string OpenVampirewalFolderBrowserDialog(string defaultPath = "");

    /// <summary>
    /// 弹出Notify通知窗
    /// </summary>
    public void OpenNotifyWindow(NotifyWindowSetting Setting);


    /// <summary>
    /// 文件单选弹窗
    /// </summary>
    /// <param name="Title">标题</param>
    /// <param name="Filter">过滤要选择的文件类型</param>
    /// <param name="InitialDirectory">设置打开文件对话框的默认路径</param>
    /// <returns></returns>
    OpenFileDialogResult OpenSingleFileDialog(string Title, string Filter = "", string InitialDirectory = "");

    /// <summary>
    /// 文件多选弹窗
    /// </summary>
    /// <param name="Title">标题</param>
    /// <param name="Filter">过滤要选择的文件类型</param>
    /// <param name="InitialDirectory">设置打开文件对话框的默认路径</param>
    /// <returns></returns>
    List<OpenFileDialogResult> OpenMultiselectFileDialog(string Title, string Filter = "", string InitialDirectory = "");


    
}
